import configparser

# 初始化配置解析器
config = configparser.ConfigParser()

# 读取配置文件
config.read('config.ini', encoding='utf-8')


# 定义一个函数来获取配置值
def get_state(section, key, default=None):
    try:
        return config.get(section, key)
    except (configparser.NoSectionError, configparser.NoOptionError):
        return default


# 定义一个函数来更新配置值
def update_state(section, key, value):
    pass
    # if not config.has_section(section):
    #     config.add_section(section)
    # config.set(section, key, str(value))
    # with open('config.ini', 'w', encoding='utf-8') as configfile:
    #     config.write(configfile)


# 示例：读取全局状态
GLOBAL_STATE = {
    'app_name': get_state('app', 'app_name', '多功能工具框架'),
    'version': get_state('app', 'version', '1.0'),
    'recent_files': get_state('recent_files', 'files', '').split(','),
    'settings': {
        'theme': get_state('settings', 'theme', 'light'),
        'font_size': int(get_state('settings', 'font_size', 13)),
        'default_dir': get_state('settings', 'default_dir', ''),
        'file_split_size': int(get_state('settings', 'file_split_size', 1024 * 1024 * 5))
    },
    'user_data': {}
}


# 示例：更新全局状态
def update_recent_files(file_path):
    recent_files = GLOBAL_STATE['recent_files']
    if file_path in recent_files:
        recent_files.remove(file_path)
    recent_files.insert(0, file_path)
    recent_files = recent_files[:20]  # 限制最多保存20个文件
    update_state('recent_files', 'files', ','.join(recent_files))
    GLOBAL_STATE['recent_files'] = recent_files


# 示例：更新默认目录
def update_default_dir(dir_path):
    update_state('settings', 'default_dir', dir_path)
    GLOBAL_STATE['settings']['default_dir'] = dir_path
